package com.ezhuan.system.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.ezhuan.common.util.PageInfoUtil;
import com.ezhuan.system.pojo.AAdver;
import com.ezhuan.system.pojo.ACate;
import com.ezhuan.system.pojo.AChannel;
import com.ezhuan.system.pojo.ARegion;
import com.ezhuan.system.pojo.ASmsHistory;
import com.ezhuan.system.pojo.ASuggest;
import com.ezhuan.system.pojo.AVersion;

/**
 * 系统模块的主要service
 * 
 * @author wangshh
 * 
 */
public interface ISystemService
{
	/*----- 全国地区模块管理开始 -----*/
	/**
	 * 添加一条全国地区
	 * 
	 * @param region
	 * @return
	 */
	JSONObject saveOneRegionService(ARegion region);

	/**
	 * 更新一条全国地区
	 * 
	 * @param region
	 * @return
	 */
	JSONObject updateOneRegionService(ARegion region);

	/**
	 * 删除一条全国地区
	 * 
	 * @param region
	 * @return
	 */
	JSONObject deleteOneRegionService(ARegion region);

	/**
	 * 查询多条全国地区
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	List<ARegion> findCondListRegionService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);

	/**
	 * 查询一条全国地区
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	ARegion findOneRegionService(Map<String, Object> condMap);
	
	/**
	 * 根据当前地区查询节点的字符串描述
	 * 一级节点-->二级节点-->三级节点
	 * @param type
	 * @param regionid
	 * @return
	 */
	List<ARegion> findTreeRegionService(ARegion region);
	/*----- 全国地区模块管理结束 -----*/
	
	/**
	 * 保存一条短信历史
	 * 
	 * @param smsHistory
	 * @return
	 */
	JSONObject saveOneSmsHistoryService(ASmsHistory smsHistory);
	
	/**
	 * 更新一条短信历史
	 * 
	 * @param smsHistory
	 * @return
	 */
	JSONObject updateOneSmsHistoryService(ASmsHistory smsHistory);
	
	/**
	 * 发送短信的一些操作
	 * @param smsHistory
	 * @return
	 */
	JSONObject updateSendSmsService(ASmsHistory smsHistory);

	/**
	 * 查询一条短信历史
	 * 
	 * @return
	 */
	ASmsHistory findOneSmsHistoryService(Map<String, Object> condMap);

	/**
	 * 查询多条短信历史
	 * 
	 * @return
	 */
	List<ASmsHistory> findCondListSmsHistoryService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	
	/*---- 建议模块管理开始 ----*/
	/**
	 * 保存一条建议
	 * 
	 * @param suggest
	 * @return
	 */
	JSONObject saveOneSuggestService(ASuggest suggest);
	
	/**
	 * 更新一条建议
	 * 
	 * @param suggest
	 * @return
	 */
	JSONObject updateOneSuggestService(ASuggest suggest);

	/**
	 * 查询一条建议
	 * 
	 * @return
	 */
	ASuggest findOneSuggestService(Map<String, Object> condMap);

	/**
	 * 查询多条建议
	 * 
	 * @return
	 */
	List<ASuggest> findCondListSuggestService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	/*---- 建议模块管理结束 ----*/
	
	/*---- 渠道模块管理开始 ----*/
	/**
	 * 保存一条渠道
	 * 
	 * @param channel
	 * @return
	 */
	JSONObject saveOneChannelService(AChannel channel);
	
	/**
	 * 更新一条渠道
	 * 
	 * @param channel
	 * @return
	 */
	JSONObject updateOneChannelService(AChannel channel);

	/**
	 * 查询一条渠道
	 * 
	 * @return
	 */
	AChannel findOneChannelService(Map<String, Object> condMap);

	/**
	 * 查询多条渠道
	 * 
	 * @return
	 */
	List<AChannel> findCondListChannelService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	/*---- 渠道模块管理结束 ----*/
	
	/*---- 广告模块管理开始 ----*/
	/**
	 * 保存一条广告
	 * 
	 * @param adver
	 * @return
	 */
	JSONObject saveOneAdverService(AAdver adver);
	
	/**
	 * 更新一条广告
	 * 
	 * @param adver
	 * @return
	 */
	JSONObject updateOneAdverService(AAdver adver);

	/**
	 * 查询一条广告
	 * 
	 * @return
	 */
	AAdver findOneAdverService(Map<String, Object> condMap);

	/**
	 * 查询多条广告
	 * 
	 * @return
	 */
	List<AAdver> findCondListAdverService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	/*---- 广告模块管理结束 ----*/
	
	/*---- 版本模块管理开始 ----*/
	/**
	 * 保存一条版本
	 * 
	 * @param version
	 * @return
	 */
	JSONObject saveOneVersionService(AVersion version);
	
	/**
	 * 更新一条版本
	 * 
	 * @param version
	 * @return
	 */
	JSONObject updateOneVersionService(AVersion version);

	/**
	 * 查询一条版本
	 * 
	 * @return
	 */
	AVersion findOneVersionService(Map<String, Object> condMap);

	/**
	 * 查询多条版本
	 * 
	 * @return
	 */
	List<AVersion> findCondListVersionService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	/*---- 版本模块管理结束 ----*/
	
	/*---- 分类模块管理开始 ----*/
	/**
	 * 保存一条分类
	 * 
	 * @param cate
	 * @return
	 */
	JSONObject saveOneCateService(ACate cate);
	
	/**
	 * 更新一条分类
	 * 
	 * @param cate
	 * @return
	 */
	JSONObject updateOneCateService(ACate cate);

	/**
	 * 查询一条分类
	 * 
	 * @return
	 */
	ACate findOneCateService(Map<String, Object> condMap);

	/**
	 * 查询多条分类
	 * 
	 * @return
	 */
	List<ACate> findCondListCateService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	/*---- 分类模块管理结束 ----*/
}
